<?php
/**
 * User: LRZ
 * Date: 2020/2/28
 * Time: 17:29
 */

/**
 *  58.最后一个单词的长度
 *
 *  标签：字符串
 *
 *  给定一个仅包含大小写字母和空格 ' ' 的字符串 s，返回其最后一个单词的长度。
 *  如果字符串从左向右滚动显示，那么最后一个单词就是最后出现的单词。
 *  如果不存在最后一个单词，请返回 0 。
 *
 *  说明：一个单词是指仅由字母组成、不包含任何空格的 最大子字符串。
 *
 *  示例:
 *      输入: "Hello World"
 *      输出: 5
 *
 *  来源：力扣（LeetCode）
 *  链接：https://leetcode-cn.com/problems/length-of-last-word
 *  著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */

$start = microtime(true);

$s   = 'hello world';
$res = lengthOfLastWord($s);

$end = microtime(true);
print_r($res);
printf(' total run: %.2f s<br>' . 'memory usage: %.2f M<br> ', $end - $start, memory_get_usage() / 1024 / 1024);

function lengthOfLastWord($s)
{
    $s   = trim($s); # 去除前后空格
    $end = strlen($s) - 1;
    $n   = 0;
    while ($end >= 0 && $s[$end] !== ' ') {
        $end--;
        $n++;
    }
    return $n;

    # 切割字符串解法
    # $s      = trim($s);
    # $sArray = explode(' ', $s);
    # $length = count($sArray);
    # return strlen($sArray[$length - 1]);
}